package com.coolingme.service;

import com.coolingme.domain.entity.Role;
import com.coolingme.domain.vo.PageInfoVo;
import com.coolingme.domain.vo.RoleListAndOwnVo;

import java.util.List;

public interface RoleService {

	/**
	 * 过滤查询
	 *
	 * @param role     查询参数
	 * @param pageNum  当前页索引
	 * @param pageSize 当前页大小
	 * @return 角色分页列表
	 */
	PageInfoVo<Role> listPageInfo(Role role, Integer pageNum, Integer pageSize);

	/**
	 * 插入
	 *
	 * @param role Role
	 */
	void insert(Role role);

	/**
	 * 插入
	 *
	 * @param role Role
	 */
	void update(Role role);

	/**
	 * 批量删除
	 * 
	 * @param idList 主键集合
	 */
	void deleteList(List<Integer> idList);

	/**
	 * 批量禁用
	 * 
	 * @param idList 主键集合
	 */
	void disableList(List<Integer> idList);

	/**
	 * 获取用户对应的角色集合和所有角色集合
	 *
	 * @param userId 用户id
	 * @return 角色key, Name集合
	 */
	RoleListAndOwnVo listRoleKeyNameByUserId(Integer userId);

	/**
	 * 更新用户的角色集合
	 *
	 * @param userId     用户id
	 * @param roleIdList 角色id集合
	 */
	void updateUserRole(Integer userId, List<Integer> roleIdList);

}
